package dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import beans.DiaSalida;

public class DiaSalidaDao {

    private static List<DiaSalida> diasSalida = null;

    public static List<DiaSalida> getDiaSalida() {
        if (diasSalida == null) {
            Session session = SimpleSessionFactory.getSessionFactory(null).openSession();
            Query q = session.createQuery("from beans.DiaSalida");

            diasSalida = q.list();
            session.close();

        }
        return diasSalida;
    }

    public static DiaSalida getDiaSalida(String dia){
        DiaSalida retorno = null;
        if(diasSalida == null)
            getDiaSalida();

        for(DiaSalida diaS : diasSalida){
            if(diaS.getNombre().compareTo(dia) == 0)
                retorno = diaS;
        }

        return retorno;
    }
    
    /**
     * Realiza una actualizacion del DiaSalida
     * @param dia Objeto a guardar
     * @return true si se hizo la actulizacion con exito, falso en caso contrario
     */
    public static boolean update(DiaSalida dia){
        Session session = SimpleSessionFactory.getSessionFactory(null).openSession();
        session.beginTransaction();

        try{
            session.update(dia);
            session.getTransaction().commit();
            return true;
        }catch(Exception ex){
            session.getTransaction().rollback();
            return false;
        }finally{
            session.close();
        }
    }

    public static boolean update(List<DiaSalida> dias) {
        Session session = SimpleSessionFactory.getSessionFactory(null).openSession();
        session.beginTransaction();
        try{
            for(DiaSalida dia : dias)
                session.update(dia);

            session.getTransaction().commit();
            return true;
        }catch(Exception ex){
            
            session.getTransaction().rollback();
            ex.printStackTrace();

            return false;
        }finally{
            session.close();
        }
    }
}
